# -*- coding: utf-8 -*-
if __name__ == "__main__":   
    #初始化数组，测试数据
    #dataList = [-3,-10,30,-5,-6,-100,300]
    #dataList = [-3,-10,-30,-5,-6,-1,-100,-300]
    #dataList = [-3,-10,0,-5,-6,-100,-300]
    dataList = [3,10,0,5,6,100,300]
    #dataList = [0,0,0,0,0,0,0]
    #prd_data用来记录前面累加的数，一旦累加值是负数，则清零
    pre_data = dataList[0]
    #用来记录最大值
    max_data = pre_data
    #遍历数据组进行累加和大小对比
    for i in range(len(dataList)):       
        currData = dataList[i]
        #第一个数用来做初始化，从第二个数开始算
        if i==0:
            continue
        else:
            #相加后进行temp_data，max_data以及currData的大小对比，找出最大的
            temp_data = currData + pre_data
            if temp_data > currData:
                if temp_data > max_data:
                    max_data = temp_data
            else:
                if currData > max_data:
                    max_data = currData
            #如果相加后是负数，则清0，因为一旦出现负数在相加只会让最大值变小
            #这块注意**********一定是相加后是负数，而不是这个数本身是负数***********
            #因为本身是负数，但是相加后是正数，对后面的数据增大还是有帮助的
            if temp_data > 0:
                pre_data = temp_data
            else:
                pre_data = 0

    print (max_data);